var express = require('express')
var router = express.Router()
// 引入分类模型
var Category = require('../models/Category')
// 引入内容模型
var Content = require('../models/Content')

var data;
/**
 * 处理通用的数据
 */
router.use(function(req,res,next){
    data = {
        userInfo: req.userInfo,
        categories:[]
    }
    Category.find().then(function(categories){
        data.categories = categories;
        next()
    })
})


/**
 * 博客首页
 */
router.get('/',function(req,res,next){
    // 如果重新赋值，上面的赋值就会被覆盖
    // data = {
    //     category: req.query.category || '',
    //     count: 0,
    //     page: Number(req.query.page || 1),
    //     limit: 2,
    //     pages: 0
    // }
    data.category = req.query.category || '';
    data.count = 0;
    data.page = Number(req.query.page || 1);
    data.limit = 2;
    data.pages = 0

    var whree = {}
    if(data.category){
        whree.category = data.category
    }
    
    Content.where(whree).count().then(function(count){
        data.count = count
        // 计算总页数
        data.pages = Math.ceil(data.count / data.limit)
        // 取值不能超过pages
        data.page = Math.min(data.page, data.pages)
        // 取值不能小于1
        data.page = Math.max(data.page, 1)
        var skip = (data.page - 1) * data.limit
        // 读取内容
        return Content.where(whree).find().limit(data.limit).skip(skip).populate(['category','user']).sort({
            addTime:-1
        })
    }).then(function(contents){
        data.contents = contents
        res.render('main/index',data)
    })
})

/**
 * 阅读全文
 */
router.get('/view',function(req,res){
    var contentId = req.query.contentid || '';
    Content.findOne({
        _id: contentId
    }).then(function(content){
        data.content = content;
        // console.log(data)
        // 增加阅读数
        content.views++;
        content.save()
        res.render('main/view',data)
    })
})

module.exports = router